package com.dexing.od2;

import java.util.*;
import java.util.stream.Collectors;

/**
 *  题目描述: 
 *  A公司准备对他下面的N个产品评选最差奖，评选的方式是首先对每个产品进行评分，然后根据评分区间计算相邻几个产品中最差的产品。
 *  评选的标准是依次找到从当前产品开始前M个产品中最差的产品，请给出最差产品的评分序列。
 *  输入描述: 
 *  第一行，数字M，表示评分区间的长度，取值范围是0<M<10000
 *  第二行，产品的评分序列，比如[12,3,8,6,5]，产品数量N范围是-10000<N<10000
 *  输出描述: 评分区间内最差产品的评分序列
 *  示例1
 *  输入:
 *  3
 *  12,3,8,6,5
 *  输出:
 *  3,3,5
 *  说明:
 *  12.3.8 最差的是3
 *  3.8,6 中最差的是3
 *  8.6.5 中最差的是5
 */
public class D0606PoorProduct {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        scanner.nextLine();
        List<Integer> list = Arrays.stream(scanner.nextLine().split(",")).map(Integer::parseInt).collect(Collectors.toList());
        Deque<Integer> dp = new LinkedList<>();
        for (int i = 0; i < list.size(); i++) {
            if (i>= m) {
                System.out.print(dp.peekFirst());
                System.out.print(",");
                if (list.get(i-m) == dp.peekFirst()) {
                    dp.pollFirst();
                }
            }

            while (!dp.isEmpty() && dp.peekLast() > list.get(i)) {
                dp.pollLast();
            }
            dp.addLast(list.get(i));
        }
        System.out.print(dp.peekFirst());
    }

}
